package Dao;

import java.util.List;

import java.util.Calendar;

import Pojo.*;

/**
 * Interface para o DAO de atividades. Toda implementação dessa interface deve implementar os métodos abaixo.
 * @author Ronan Lopes
 *
 */
public interface AtividadeDao {
	/**
	 * Adicionar uma Atividade ao banco de dados de Atividades
	 * @param atividade
	 * @return true ou false indicando sucesso ou não
	 */
	public boolean inserir(Atividade atividade);
	
	/**
	 * Remover Atividade do banco de dados de Atividades
	 * @param atividade
	 * @return true ou false indicando sucesso ou não
	 */
	public boolean remover(Atividade atividade);
	
        /**
	 * Alterar Atividade do banco de dados de Atividades
	 * @param atividade
	 * @return true ou false indicando sucesso ou não
	 */
	public boolean alterar(Atividade atividade);
                
	/**
	 * Pesquisa de Atividades passando o nome
	 * @param nome
	 * @return Lista de Atividades cujos nomes são iguais ao nome passado. A lista pode vir vazia indicando que não há nenhuma atividade com esse nome.  
	 */
	public List<Atividade> pesquisarPorNome(String nome);
	
	/**
	 * Pesquisa de Atividades passando uma data
	 * @param data
	 * @return Lista de Atividades cujas data são iguais à data passada. A lista pode vir vazia indicando que não há nenhuma atividade nesta data.
	 */
	public List<Atividade> pesquisarPorData(Calendar data);
        
        /**
	 * Pesquisa de Atividades passando uma turma
	 * @param data
	 * @return Lista de Atividades cujas turmas são iguais à turma passada. A lista pode vir vazia indicando que não há nenhuma atividade com esta turma.
	 */
	public List<Atividade> pesquisarPorTurma(Turma turma);
        
        /**
	 * Pesquisa de Atividades passando um id
	 * @param data
	 * @return Atividade 
	 */
	public Atividade pesquisarPorId(int id);
}
